home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / include / scribus-ng / actionmanager.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-09  |  4.8 KB  |  127 lines

  1. /*
  2. For general Scribus (>=1.3.2) copyright and licensing information please refer
  3. to the COPYING file provided with the program. Following this notice may exist
  4. a copyright and/or license notice that predates the release of Scribus 1.3.2
  5. for which a new license (GPL+exception) is in place.
  6. */
  7. /***************************************************************************
  8.     begin                : Jan 2005
  9.     copyright            : (C) 2005 by Craig Bradney
  10.     email                : cbradney@zip.com.au
  11.  ***************************************************************************/
  12.  
  13. /***************************************************************************
  14.  *                                                                         *
  15.  *   This program is free software; you can redistribute it and/or modify  *
  16.  *   it under the terms of the GNU General Public License as published by  *
  17.  *   the Free Software Foundation; either version 2 of the License, or     *
  18.  *   (at your option) any later version.                                   *
  19.  *                                                                         *
  20.  ***************************************************************************/
  21. #ifndef ACTIONMANAGER_H
  22. #define ACTIONMANAGER_H
  23.  
  24. #include <QKeySequence>
  25. #include <QObject>
  26. #include <QString>
  27. #include <QStringList>
  28. #include <QMap>
  29. #include <QPair>
  30. #include <QVector>
  31. #include <QPointer>
  32. #include <QMultiHash>
  33. #include <QPixmap>
  34. #include <QActionGroup>
  35.  
  36. class QEvent;
  37.  
  38. #include "scribusapi.h"
  39. #include "scraction.h"
  40.  
  41. class ScribusDoc;
  42. class ScribusMainWindow;
  43. class ScribusQApp;
  44. class ScribusView;
  45. class UndoManager;
  46. /**
  47. @author Craig Bradney
  48. */
  49. class SCRIBUS_API ActionManager : public QObject
  50. {
  51.     Q_OBJECT
  52.  
  53.     friend class StoryEditor;
  54.     public:
  55.         ActionManager ( QObject * parent );
  56.         ~ActionManager();
  57.         
  58.         virtual void changeEvent(QEvent *e);
  59.         
  60.         void init(ScribusMainWindow *);
  61.         static void createDefaultShortcuts();
  62.         static QMap<QString, QKeySequence>* defaultShortcuts() {return &defKeys;};
  63.         static void createDefaultMenus();
  64.         static void createDefaultMenuNames();
  65.         static void createDefaultNonMenuActions();
  66.         static void createDefaultNonMenuNames();
  67.         static QVector< QPair<QString, QStringList> >* defaultMenuNames() {return &defMenuNames;};
  68.         static QVector< QPair<QString, QStringList> >* defaultNonMenuNames() {return &defNonMenuNames;};
  69.         static QString defaultMenuNameEntryTranslated(const QString& index);
  70.         static QVector< QPair<QString, QStringList> >* defaultMenus() {return &defMenus;};
  71.         static QVector< QPair<QString, QStringList> >* defaultNonMenuActions() {return &defNonMenuActions;};
  72.         void createActions();
  73.         void disconnectModeActions();
  74.         void connectModeActions();
  75.         void disconnectNewViewActions();
  76.         void connectNewViewActions(ScribusView *);
  77.         void disconnectNewDocActions();
  78.         void connectNewDocActions(ScribusDoc *);
  79.         void disconnectNewSelectionActions();
  80.         void connectNewSelectionActions(ScribusView *,ScribusDoc *);
  81.         void saveActionShortcutsPreEditMode();
  82.         void restoreActionShortcutsPostEditMode();
  83.         void enableActionStringList(QMap<QString, QPointer<ScrAction> > *actionMap, QStringList *list, bool enabled, bool checkingUnicode=false, const QString& fontName=QString::null);
  84.         void enableUnicodeActions(QMap<QString, QPointer<ScrAction> > *actionMap, bool enabled, const QString& fontName=QString::null);
  85.         void setPDFActions(ScribusView *);
  86.         
  87.     public slots:
  88.         void languageChange();
  89.         void handleMultipleSelections(bool isMultiple);
  90.         
  91.     protected:
  92.         void initFileMenuActions();
  93.         void initEditMenuActions();
  94.         void initStyleMenuActions();
  95.         void initItemMenuActions();
  96.         void initInsertMenuActions();
  97.         void initPageMenuActions();
  98.         void initViewMenuActions();
  99.         void initToolsMenuActions();
  100.         void initExtrasMenuActions();
  101.         void initWindowsMenuActions();
  102.         void initScriptMenuActions();
  103.         void initHelpMenuActions();
  104.         static void initUnicodeActions(QMap<QString, QPointer<ScrAction> > *actionMap, QWidget *actionParent, QStringList *actionNamesList);
  105.         void initSpecialActions();
  106.         static void languageChangeUnicodeActions(QMap<QString, QPointer<ScrAction> > *actionMap);
  107.         void languageChangeActions();
  108.         static QKeySequence defaultKey(const QString &actionName);
  109.     
  110.         QPixmap noIcon;
  111.         ScribusMainWindow *mainWindow;
  112.         ScribusQApp *ScQApp;
  113.         UndoManager *undoManager;
  114.         QMap<QString, QPointer<ScrAction> > *scrActions;
  115.         QMultiHash<QString, QActionGroup*> *scrActionGroups;
  116.         QStringList *modeActionNames;
  117.         QStringList *nonEditActionNames;
  118.         QStringList *unicodeCharActionNames;
  119.         static QMap<QString, QKeySequence> defKeys;
  120.         static QVector< QPair<QString, QStringList> > defMenuNames;
  121.         static QVector< QPair<QString, QStringList> > defMenus;
  122.         static QVector< QPair<QString, QStringList> > defNonMenuNames;
  123.         static QVector< QPair<QString, QStringList> > defNonMenuActions;
  124. };
  125.  
  126. #endif
  127.